﻿<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Adobe RoboHelp 9" />
<title>Trusting Applications built from other Frameworks</title>
<link rel="StyleSheet" href="default.css" type="text/css" />
<style type="text/css">
/*<![CDATA[*/
<!--
P { margin-left:0pt;
margin-right:0pt;
font-family:Verdana;
margin-bottom:3pt;
margin-top:18pt; }
H1 { font-weight:bold;
margin-top:14pt;
margin-bottom:14pt;
margin-left:0pt;
margin-right:0pt;
page-break-after:avoid;
font-family:Verdana;
x-next-type:P;
font-size:18pt; }
H2 { font-weight:bold;
margin-top:14pt;
margin-bottom:14pt;
margin-left:0pt;
margin-right:0pt;
page-break-after:avoid;
font-family:Verdana;
x-next-type:P;
font-size:14pt; }
H3 { font-weight:bold;
margin-top:14pt;
margin-bottom:14pt;
margin-left:0pt;
margin-right:0pt;
page-break-after:avoid;
font-family:Verdana;
x-next-type:P;
font-size:12pt; }
-->
/*]]>*/
</style>

<script type="text/javascript" language="JavaScript">
//<![CDATA[
function reDo() {
  if (innerWidth != origWidth || innerHeight != origHeight)
     location.reload();
}
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
        origWidth = innerWidth;
        origHeight = innerHeight;
        onresize = reDo;
}
onerror = null; 
//]]>
</script>
<style type="text/css">
/*<![CDATA[*/
<!--
div.WebHelpPopupMenu { position:absolute;
left:0px;
top:0px;
z-index:4;
visibility:hidden; }
-->
/*]]>*/
</style>

<script type="text/javascript" language="javascript1.2" src="whmsg.js">
</script>
<script type="text/javascript" language="javascript" src="whver.js">
</script>
<script type="text/javascript" language="javascript1.2" src="whproxy.js">
</script>
<script type="text/javascript" language="javascript1.2" src="whutils.js">
</script>
<script type="text/javascript" language="javascript1.2" src="whlang.js">
</script>
<script type="text/javascript" language="javascript1.2" src="whtopic.js">
</script>
</head>
<body>
<script type="text/javascript" language="javascript1.2">
//<![CDATA[
<!--
if (window.gbWhTopic)
{
        var strUrl = document.location.href;
        var bc = 0;
        var n = strUrl.toLowerCase().indexOf("bc-");
        if(n != -1)
        {
                document.location.href = strUrl.substring(0, n);
                bc = strUrl.substring(n+3);
        }

        if (window.addTocInfo)
        {
        addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");

        }
        if (window.writeBtnStyle)
                writeBtnStyle();

        if (window.writeIntopicBar)
                writeIntopicBar(1);

        
        document.write("<p style=\"font-family: Arial; font-size: 8pt; font-weight: 400;  font-style:normal; color: rgb(0, 0, 255); text-decoration:none; text-align: right\"> ");
AddMasterBreadcrumbs("index.htm", "font-family: Arial; font-size: 8pt; font-weight: 400;  font-style:normal; color: rgb(0, 0, 255); text-decoration:none; text-align: right", "&gt;", "Home", "welcome.htm");
document.write("Trusting Applications built from other Frameworks<\/p>");


        if (window.setRelStartPage)
        {
        setRelStartPage("index.htm");

                autoSync(1);
                sendSyncInfo();
                sendAveInfoOut();
        }
}
else
        if (window.gbIE4)
                document.location.reload();

//-->
//]]>
</script><span style="font-weight: bold; font-size: 10pt;"><font size="2" style="font-size:10pt;"><b><a href="http://www.opcfoundation.org" style="color: #0000ff; font-size: 10pt; text-decoration: underline;"><img src="opcfoundation.jpg" alt="opcfoundation.jpg" style="border: none;" width="189" height="61" align="left" border="0" /></a>The Interoperability Standard<br />
for Industrial Automation</b></font></span><br />
&#160;<br />
&#160;
<table cellspacing="0" width="100%" align="center">
<tr>
<td style="vertical-align: top;"><span style="font-size: 8pt;"><font size="1" style="font-size:8pt;"><a href="http://www.opcfoundation.org" target="_blank" style="color: #0000ff; text-decoration: underline;">OPC Foundation Online</a> | <a href="http://www.opcfoundation.org/certification" target="_blank">Certification</a> | <a href="http://www.opcfoundation.org/technology" target="_blank">Technology</a> | <a href="https://www.opcfoundation.org/news" target="_blank">News</a></font></span></td>
<td style="vertical-align: top; text-align: right; font-size: 8pt;"><a href="welcome.htm" style="color: #0000ff; text-decoration: underline;">Home</a> | <a href="getting_started.htm">Getting Started</a></td>
</tr>
</table>
<p style=" border-bottom:Solid 1px #000000; font-weight:bold; text-align:center; border-width:4px;"><span style="font-weight: bold; text-align: center;"><b><span style="font-weight: bold;"><b>Unified Architecture Technology Sample Applications</b></span></b></span></p>
<h1>Trusting Applications built from other Frameworks</h1>
<p>In this tutorial we will consider an application that is not built upon the OPC Foundation UA .NET API. Applications that are built upon a C++ or JAVA SDK for example, would fall under this category.</p>
<h2>Identifying the Tools Available</h2>
<p>Different applications from different vendors may approach this differently. This tutorial, while not specific, will provide you with the general guidelines to help establish a trust.</p>
<p>Some applications may provide you with a GUI for easy configuration, whereas others might rely upon standard tools such as the Microsoft Management Console (MMC) or use the file-system directly such as Windows Explorer.</p>
<h2>Trusting Applications via Failed Initial Connection Attempt (easier)</h2>
<p>In this tutorial we will follow how to enable Server (based on UA .NET API) to trust a Client (other framework), and for a Client (other framework) to trust a Server (based on UA .NET API).</p>
<table class="AlternateBlueWithHeader" cellspacing="0px" width="100%">
<col style="width: 50%;" />
<col style="width: 50%;" />
<tr class="t1st">
<td style="border-right-style: Solid; border-bottom-width: 1px; border-left-width: 1px; border-top-width: 1px; border-right-width: 4px; vertical-align: top;">
<p style="font-weight: bold; text-align: center;">Server (UA .NET API) trusts a<br />
Client (other framework)</p>
</td>
<td style="vertical-align: top;">
<p style="font-weight: bold; text-align: center;">Client (UA .NET API) trusts a<br />
Server (other framework)</p>
</td>
</tr>
<tr class="t2Row">
<td style="border-right-style: Solid; border-left-width: 1px; border-right-width: 4px; vertical-align: top;">
<p>The following steps outline how you might configure your UA Server (built on the UA .NET API) to trust a Client that is based on a different framework.</p>
<ol type="1">
<li>
<p>Make a secure connection between the Client and Server, expecting the connection to Fail.</p>
</li>
<li>
<p><a href="launching_the_configuration_tool.htm">Launch the Configuration Tool</a>, then activate the <a href="uaconfig_manage_security.htm">Manage Security</a> tab, and then click the "Select Certificate to Trust..." button.</p>
</li>
<li>
<p>Change the "Store Path" to show the "RejectedCertificates".</p>
</li>
<li>
<p>Select the desired application from the list and click the "OK" button.</p>
</li>
<li>
<p>You will see a message that the certificate is now trusted. However, the certificate is also still <span style="font-style: italic;"><i>not trusted</i></span>.</p>
</li>
<li>
<p>Repeat steps 2 and 3 (above) and this time you will select the application by right-clicking on it and choosing "Delete" from the context-menu; you will need to confirm the request.</p>
</li>
<li>
<p>Click the "Cancel" button to close the "Manage Certificates in Certificate Store" dialog.</p>
</li>
<li>
<p>Minimize the Configuration Tool.</p>
</li>
<li>
<p>Try to establish a secure connection from Client to the Server.</p>
</li>
<li>
<p>This time you may be prompted to trust the Server's certificate; do trust the Server's certificate!<br />
<span style="font-weight: bold; color: #ff0000;"><font color="red"><b>Please refer to the Client's documentation for product-specific instructions.</b></font></span></p>
</li>
</ol>
</td>
<td style="vertical-align: top;">
<p>The following steps outline how you might configure your UA Client (built on the UA .NET API) to trust a Server that is based on a different framework.</p>
<ol type="1">
<li>
<p>Make a secure connection between the Client and Server, expecting the connection to Fail.</p>
</li>
<li>
<p>The Server should reject the Client's certificate because it is not yet trusted.<br />
<span style="font-weight: bold; color: #ff0000;"><font color="red"><b>Please refer to the Server's product-specific documentation for trusting a Client certificate.</b></font></span></p>
</li>
<li>
<p>Once the Server has been configured to trust the Client's certificate then you should attempt to make another secure connection.</p>
</li>
<li>
<p>The Client might prompt you to automatically trust the Server's certificate; if so then do trust the Server's certificate.</p>
</li>
<li>
<p>If the Client rejects the certificate then you can <a href="launching_the_configuration_tool.htm">Launch the Configuration Tool</a>, then activate the <a href="uaconfig_manage_security.htm">Manage Security</a> tab, and then click the "Select Certificate to Trust..." button.</p>
</li>
<li>
<p>Change the "Store Path" to show the "RejectedCertificates". Select the desired application from the list and click the "OK" button.</p>
</li>
<li>
<p>Repeat the last step except you will delete the certificate from the RejectedCertificates repository.</p>
</li>
<li>
<p>Try to establish a secure connection from Client to the Server.</p>
</li>
</ol>
</td>
</tr>
</table>
<h2>See Also</h2>
<ul type="disc">
<li>
<p><a href="trusting_applications_built_with_.net_api.htm">Trusting Applications built with .NET API</a></p>
</li>
</ul>
<p style=" border-top:Solid 1px #000000; font-size:6pt; text-align:right; border-width:4px;"><span style="font-size: 6pt; text-align: right;"><font size="1" style="font-size:6pt;">Copyright OPC Foundation 1995-2013</font></span></p>
<script type="text/javascript" language="javascript1.2">
//<![CDATA[
<!--
if (window.writeIntopicBar)
        writeIntopicBar(0);


highlightSearch();
//-->
//]]>
</script>
</body>
</html>
